supdecar
  22.8.2014, 12:53
  
 
  Здравствуйте дорогие коллеги, ищу помощи с Desigo Siemens у меня стоит лицензия с последними обновлениями, столкнулся с такой проблемой:
Поставили задачу, надо через последовательный порт (com-порт) передавать сообщениями на ноутбук тревоги. Я создал модем в win7  как последовательный порт и поставил скорость порта 9600, после чего зашел в проект создал маршрутизацию до абонента и модема. В итоге алармы так и не передались, пробовал отправить вручную через окно послать сообщение выдает ошибку в Системной информации "Произошла ошибка при передаче события Пэйджер маршрутизатору". Через гипер терминал всё передается между компьютерами. Подскажите как решить проблему??? 
Нажмите для просмотра прикрепленного файлаНажмите для просмотра прикрепленного файла[attachme
nt=89523:______.png]
Нажмите для просмотра прикрепленного файлаНажмите для просмотра прикрепленного файлаНажмите для просмотра прикрепленного файла
  
 
 
  Решил вопрос передачи информации путем дополнительного оборудования (MOXA NPort 5110), но теперь проходит инициализация, но не передается само сообщение, я догадываюсь что проблема в строчке WAITFOR (ack, ERR_NO )
VAR	 sText, sMsgSend, sWaitstr, MAXLOOPS, ANSSELECT, ANSBUSY, ANSACCEPT, ANSABSENT, ANSTERMINATE;
CONVERT		= 142 TO 91, 153 TO 92, 154 TO 94, 132 TO 123, 148 TO 124, 129 TO 126, 225 TO 30;
CHECKSUM	= MODE_5,1;
// Please check in the manual if your Pager System is supporting messages which are up to 128 characters long.
// Some systems are only supporting messages up to 56 characters in length. If this is the case please
// change the variable MAXCHAR accordingly.
sText		= MAXCHAR(Message, 128);
sMsgSend	= "1" + stx + "1" + ^_ + ReceiverID + ^^ + "2" + ^_ + sText + ^^ + "3" + ^_ + "1" + ^^ + "4" + ^_ + "3" + etx;
sMsgSend	= CHK(sMsgSend);
TIMEOUT		= 10;
MAXLOOPS	= 6;
ANSSELECT	= "1" + ^E;
ANSBUSY		= "7" +^_ + "1";
//ANSACCEPT	= "7" +^_ + "2";
ANSACCEPT	= "7" +^_ + "я";		// Zeichen 0FFH
ANSABSENT	= "7" +^_ + "4";
ANSTERMINATE	= "7" +^_ + "5";
DELAY 1;
LOOP 1 DO
	TRANSMIT ("1" + ^E);
	TRANSMIT ("2" + ^E); 
	WAITFOR(ack,ERR_NO);
	IF ERR = ERR_NO THEN  
		TRANSMIT(^A + sMsgSend);
		WAITFOR (ack,ERR_NO);
		IF ERR = ERR_NO THEN 
			TRANSMIT(eot);
			EXIT; 
		ENDIF;
	ENDIF;
	TRANSMIT(eot);
LEND;
IF ERR = ERR_NO THEN
	LOOP MAXLOOPS DO
		TRANSMIT ("2" + ^E);
		WAITFOR(eot,ERR_NO,ANSSELECT,"REPLY");
		IF ERR = "REPLY" THEN
			TRANSMIT(ack);
			WAITFOR(ANSBUSY,"STBUSY",ANSACCEPT,"STACCEPT",ANSABSENT,"STABSENT",ANSTERMINATE,"STTERMINATE");
			IF ERR = "STBUSY" THEN
				TRACE ("Pager busy");	// wait
			ENDIF;
			IF ERR = "STACCEPT" THEN
				TRACE ("Call in queue");
				ERR = ERR_NO;
			ENDIF;
			IF ERR = "STABSENT" THEN
				TRACE ("Absent");
			ENDIF;
			IF ERR = "STTERMINATE" THEN
				TRACE ("Pager unregistered");
			ENDIF;
			TRANSMIT(ack);
			IF ERR <> "STBUSY" THEN
				EXIT;
			ENDIF;
		ENDIF;
		IF ERR = ERR_TIMEOUT THEN
			EXIT;
		ENDIF;
	LEND;
ENDIF;
IF ERR = ERR_NO	THEN  
	RETURN (TRUE);	// successful
ELSE
	RETURN (FALSE);	// not successful
ENDIF;
В результате в гипертерминале появляется 12 и какой то знак, дальше десига подвисает и выдает ошибку передачи, помогите разобраться как передать сообщение и в чём проблема. Есть ли какая нибудь документация по Pager Script? И что такое ack?
 
 
 
 
  Удалив WAITFOR и всё что с ним связано удалось передать сообщение, теперь проблема осталось не решенной, как предавать тревоги, при составлении маршрутизации десига пишет: Произошла ошибка при передаче события Пэйджер маршрутизатору. Невозможно выполнить маршрутизацию событий из-за ошибок драйвера. 6 событий пропущено. Как решить данную проблему?